//
//  UIViewController+NEDBase.h
//  NEDBase
//
//  Created by 98du on 2021/12/3.
//

#import <UIKit/UIKit.h>
#import <FDFullscreenPopGesture/UINavigationController+FDFullscreenPopGesture.h>

NS_ASSUME_NONNULL_BEGIN

@protocol NEDBaseViewControllerNaviationBarDelegate <NSObject>

/// 不显示返回按钮
- (BOOL)ned_navcHiddenBackBarItem;
/// 导航条透明
/// 导航条背景依旧是存在的 如果要全部透明 需要改变ned_navcBackgroundColor返回的色值为clear
- (BOOL)ned_navcIsTransucent;
/// 显示大标题
- (BOOL)ned_navcShowLargeTitle;
/// 导航条颜色
- (UIColor *)ned_navcBackgroundColor;
/// 导航条颜色
- (UIImage *)ned_navcBackgroundImage;
/// 导航条字体颜色
- (UIColor *)ned_navcTitleColor;
/// 导航条字体大小
- (UIFont *)ned_navcTitleFont;
/// 导航条返回按钮的图片
- (UIImage * _Nullable)ned_navcBackItemImage;

/// 导航条显示样式更新
- (void)ned_navigationBarShowStyleUpdate;
/// 导航条返回事件
- (void)ned_navcBackEvent;
/// 改变导航条背景色
/// 需要设置 ned_navcIsTransucent 为YES，ned_edgesForExtendedLayout 为UIRectEdgeAll
- (void)ned_navcChangeBackgroundColor:(UIColor *)changeColor;
- (void)ned_navcChangeTitleColor:(UIColor *)changeColor;
- (void)ned_navcChangeBackItemImage:(UIImage *)backImage;

/// 给LeakFinder使用 默认YES 返回NO的时候 不做内存泄漏检测 要注释控制台中该控制器是否有释放
- (BOOL)willDealloc;

@end

@protocol NEDBaseViewControllerDelegate <NSObject>

/// 控制器关闭
- (void)ned_viewcontrollerClose;

- (void)ned_addContentView;
- (void)ned_addNotification;

/// view的背景图
- (void)ned_viewBackgroundImage:(UIImage *)backgroundImage;

/// UIRectEdgeAll
- (UIRectEdge)ned_edgesForExtendedLayout;

// 没有具体实现 需要在ViewdidLoad中调用 对应 分类中实现
- (void)ned_addContentMainViewInCategory;
- (void)ned_addContentNavigationViewInCategory;

@end


@interface UIViewController (NEDBase)<NEDBaseViewControllerDelegate,NEDBaseViewControllerNaviationBarDelegate>

@end

NS_ASSUME_NONNULL_END
